/**
 * 文件名：****.java
 * 版权：Copyright Lightkit All Rights Reserved.
 * 描述：*****
 */
package com.lightkits.wms.domain.allot;

import com.lightkits.common.db.entity.WmExecuteLine;
import com.lightkits.common.db.entity.WmRequestHeader;
import com.lightkits.common.db.entity.WmRequestLine;
import com.lightkits.framework.common.model.CheckResult;
import com.lightkits.wms.dto.allot.model.PickHeadDto;
import com.lightkits.wms.dto.allot.model.PickLineDto;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * CreateDocParamsService
 *
 * @author jing.wei@hand-china.com
 * @date 2019/5/23 20:16
 */
@Component
public interface CreateDocParamsService {

    /**
     * 创建领料单头
     *
     * @param dto 调拨发出请求头参数
     * @return WmRequestHeader
     **/
    CheckResult<WmRequestHeader> createRequestHeader(PickHeadDto dto);

    /**
     * 创建领料单行
     *
     * @param lineDtos 调拨发出请求行信息
     * @param headerId 领料单头Id
     * @return WmRequestLine
     **/
    CheckResult<List<WmRequestLine>> createRequestLines(List<PickLineDto> lineDtos,
                                                        Long headerId);

    /**
     * 创建领料单执行
     *
     * @param lines    领料单行信息
     * @param headerId 领料单头Id
     * @param eventId  事件ID
     * @return WmExecuteLine
     **/
    CheckResult<List<WmExecuteLine>> createExecuteLine(List<WmRequestLine> lines,
                                                       Long headerId,
                                                       Long eventId);
}

